// 重点  重点  重点   重点  重点
//导入 axios
import axios from 'axios';
import NProgress from 'nprogress';
//导入 nprogress 对应的 css
import 'nprogress/nprogress.css';

//创建 axios 的实例
let instance = axios.create({
  baseURL: 'http://127.0.0.1:8080/admin',
  timeout: 5000
});

//添加请求拦截器   nprogress
instance.interceptors.request.use(config => {
  //添加公共参数
  config.headers.token = localStorage.getItem('token');
  //显示进度条效果
  NProgress.start();
  //返回 config 配置对象
  return config;
});

//添加响应拦截器
instance.interceptors.response.use(response => {
  //关闭进度条效果
  NProgress.done();
  //判断响应结果是否成功
  if(response.data.code !== '0000'){
    alert(response.data.msg);
    throw new Error('响应 code 异常');
  }
  //返回 response 对象
  return response.data.data;
}, err => {
  alert('请求异常');
  //返回失败的 promise 或 抛出 
  throw new Error('请求异常');
});

//暴露
export default instance;